<?

$product = NULL;

/**
  * Fonctionnement de la règle d'unicité.
  * La règle d'unicité ne permet qu'un ajout par participant
  * et vérifie donc si elle n'est pas supérieure à ce nombre.
  * @return boolean
  */
function check_rule_unicity($participants, $rule_qty) {
    return $participants >= $rule_qty;
}

/**
  * Règle de non-totalité.
  * La règle non-totalité empêche l'ajout d'une
  * option à tous les participants.
  * @return boolean
  */
function check_rule_not_full($participants, $rule_qty) {
    return $participants > $rule_qty;
}

/**
  * Règle seul.
  * Cette règle ne fonctionne que si il n'y a
  * qu'un seul participant.
  * @param int $participants, int $rule_qty
  * @return boolean
  */
function check_rule_alone( $participants, $rule_qty ) {
    return $participants == $rule_qty == 1;
}

/**
  * Règle totale.
  *
  * @param int $participants
  * @param int $rule_qty 
  * @return boolean
  */
function check_rule_all( $participants, $rule_qty ) {
    return $participants == $rule_qty;
}

/**
  * Règle(s) d'affectation
  *
  * @param int $participants <description>
  * @param int $rule_qty <description>
  * @param int $nb_affect <description>
  * @return boolean
  */
function check_rule_affect( $participants, $rule_qty, $nb_affect ) {
    return ($rule_qty * $nb_affect <= $participants) and ($rule_qty / $nb_affect == 0);
}
?>